Unity通过脚本控制Image组件 您所在的位置:网站首页 unity 函数图像 Unity通过脚本控制Image组件

Unity通过脚本控制Image组件

2024-04-08 05:11| 来源: 网络整理| 查看: 265

Unity 通过脚本控制Image组件

1.在Hierarchy面板上新建一个Canvas。 2.在Project面板上新建文件夹Resources,把你想要加载的图片放在这里面。 3.刚加载进来的图片是不能用的需要把图片改成sprite格式,图片必须是sprite格式在unity的Image里才可以使用。点击图片在Inspector面板的Texture Type里将属性改成Sprite(2D and UI)。 修改之后图片会变成这个样子。 在这里插入图片描述第一种方法是定义变量通过变量把图片赋值给Image组件。 注意:脚本里使用Image需要引入命名空间 using UnityEngine.UI; 定义一个Sprite类型的变量(如果图片多的话可以定义成数组)。 我是把脚本挂在了Canvas上,如果是挂在了Image组件上可以不定义Image变量直接用transform.GetComponent().sprite = sprites[0]; 来动态加载图片。

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ImageDemo : MonoBehaviour { public Sprite[] sprites; public Image image; // Use this for initialization void Start () { //把图片赋值给Image组件 image.sprite = sprites[0]; } }

在Canvas下创建一个Image组件。 然后把图片和image组件拖进脚本。 在这里插入图片描述运行之后的结果。

在这里插入图片描述第二种方法是在文件夹里找到图片然后赋值给Image组件。 在Assets下创建一个名为Resources的文件夹(注意名字不要错不然会找不到图片),然后把图片放在这个文件夹里,同样需要把图片改成sprite格式。 在这里插入图片描述 在这里我是动态创建的Image对象并没有在Unity 编译器里创建Image。

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ImageDemo : MonoBehaviour { void Start () { //创建一个Image对象 GameObject newImage = new GameObject("Image"); //把newImage对象变成Canvas对象的子节点对象 newImage.transform.SetParent(GameObject.Find("Canvas").transform); //添加Image组件 newImage.AddComponent(); //动态加载贴图赋值给Image newImage.GetComponent().sprite = Resources.Load("2"); } }

运行结果,由于没有设计格式位置什么的所以它在左下角。动态创建的所以右边Canvas下多了一个Image。

在这里插入图片描述

也可以通过脚本去设置格式。

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ImageDemo : MonoBehaviour { void Start () { //创建一个Image对象 GameObject newImage = new GameObject("Image"); //把newImage对象变成Canvas对象的子节点对象 newImage.transform.SetParent(GameObject.Find("Canvas").transform); //添加Image组件 newImage.AddComponent(); //动态加载贴图赋值给Image newImage.GetComponent().sprite = Resources.Load("2"); //将图片变成黑色而且改变透明度为50% newImage.GetComponent().color = new Color(0, 0, 0, 0.5f); //修改位置 newImage.GetComponent().anchoredPosition = new Vector2(0.0f, 100.0f); //修改旋转 newImage.GetComponent().localRotation = Quaternion.Euler(new Vector3(0f, 180f, 0f)); //修改缩放 newImage.GetComponent().localScale = new Vector3(1.2f, 1.2f, 1.2f); //修改大小 newImage.GetComponent().sizeDelta = new Vector2(200.0f, 200.0f); } }

设置格式后的结果。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有